For the convenience of the reader, various acronyms and other terms used in the field of this invention are defined at the end of the specification in a glossary. Other terms used by the applicant to define the operation of the inventive system are defined throughout the specification. For the convenience of the reader, applicant has added a number of topic headings to make the internal organization of this specification apparent and to facilitate location of certain discussions. These topic headings are merely convenient aids and not limitations on the text found within that particular topic.
In order to promote clarity in the description, common terminology for components is used. The use of a specific term for a component suitable for carrying out some purpose within the disclosed invention should be construed as including all technical equivalents which operate to achieve the same purpose, whether or not the internal operation of the named component and the alternative component use the same principles. The use of such specificity to provide clarity should not be misconstrued as limiting the scope of the disclosure to the named component unless the limitation is made explicit in the description or the claims that follow.
This invention relates to communications systems and methods, in particular, to packet communication systems and methods. More specifically, the invention relates to systems and methods of using a Jitter Absorption Buffer (JAB) to absorb propagation delay variation in packet arrival time.
Delay and Delay Variation in Packet Communications Systems
Packet communication systems, or networks, are commonly used for the conveyance of information for data applications. In general, these data applications are insensitive to absolute propagation delay (APDxe2x80x94the time it takes for a packet to propagate through the network) and propagation delay variation (PDVxe2x80x94changes in the APD, also known as jitter or wander).
Packet communications systems can also be used for transport of applications that are sensitive to APD and PDV. Examples include: 1) Direct voice applications such as VoIP; 2) Leased line applications transported via circuit emulation; 3) Video applications; and 4) Certain data protocols such as SNA. These examples are illustrative and not an exhaustive list.
It is fairly easy to remove the high frequency components of PDV using a Phase-Locked Loop (PLL). Throughout the rest of this application, PDV will refer to only the low frequency components of PDV.
Sensitivity to APD and PDV can be addressed in one of three ways:
First, the sensitive applications could be modified to handle larger values of APD and PDV. Increased tolerance of APD and PDV would come at the expense of decreased signal quality, or increased application complexity, or both. For example, some applications may dynamically modify the drain rate, use Forward Error Correction (FEC) systems to offset the impact of missing packets, or use various filling techniques to compensate for packets late enough to be treated as missing. Also, this approach is not suitable for many xe2x80x9clegacyxe2x80x9d applications that are no longer maintained or updated by their vendors.
Second, the APD and PDV of the network could be tightly controlled. This may not be feasible or cost-effective in existing packet networks. APD is composed of two main components: propagation delay via fibers or radio waves, and switching/queuing delays. Both of these components are difficult to change in a given network. PDV is usually caused by congestion. Traffic engineering or over-provisioning of bandwidth may reduce PDV, but these approaches may not be practical. One resource-intensive solution is to transmit a duplicate set of data along another route to reduce the chances that both a packet and its duplicate would be lost or excessively delayed. It would be preferable to achieve improvements in signal quality, rather than take the extreme measure of doubling the load on the network and more than doubling the processing to be performed at the receiving end.
The third alternative is that an external device could absorb the PDV by using a Jitter Absorption Buffer (JAB). The tradeoff with this alternative is that increased tolerance to PDV comes at the expense of APD. It is desirable to minimize APD for some applications like voice, but the JAB should be large enough to account for the variations in the rate of receiving packets, so that the buffer of received data does not frequently underflow (become empty) or overflow.
FIG. 1 illustrates how a JAB can correct PDV. FIG. 1A illustrates the general progression from transmit bits 10 through encapsulation 14 to transmit packets 20 through the packet network 24 to arriving packets 30 through the JAB 34 and de-encapsulation 38 to become a stream of receive bits 40. Consider a CBR (constant bit rate) application where the bits are created at constant rate R. The rate R remains constant because there are no pauses in the data stream. The application at the receiving end is typically set to receive and process bits at the same rate R. On the path from creation to processing at the receive end the transmit bits 10 first arrive at a device that encapsulates them into packets and injects the transmit packets 20 into a packet network 24 at rate P. Just as the bits arrive from the application at regular intervals (line 10 of FIG. 1B), the encapsulating device 14 sends out packets at regular interval (line 20 of FIG. 1B). However, the intervening packet network is not perfect, so it introduces PDV due to congestion.
Use of a JAB to Correct PDV
A system that is receiving packets from a network that introduces PDV will see the incoming packets arrive at a rate that over a large period of time averages out to be the creation rate P. But from moment to moment, the receive rate varies as congestion in the network causes variation in the amount of time for a packet to traverse the network. The received packets 30 are processed at the receive end and the encapsulated bits are extracted and placed into the JAB. Note that line 30 of FIG. 1B shows how the rhythmic release of transmit packets 20 has been distorted by variations in the APD for the various packets so that the stream of arriving packets 30 is irregular.
The JAB 34 absorbs the PDV by having a queue of received packets so that a steady stream of receive bits 40 can be released from de-encapsulation 38 (see Line 40 in FIG. 1B). The removal of PDV comes at the expense of APD. This is because the JAB adds additional delay to the packets that have traversed the network quickly, so that their APD is the same as packets that took a longer time to traverse the network.
In some ways, the use of a conservatively large JAB is worse than the situation of a convoy, where the convoy travels at the speed of the slowest ship. In this case the ships (packets) are free to travel across the ocean at their own speed but must wait outside the port (in the JAB) to re-form the convoy before entering the port. Furthermore, they must wait long enough for the slowest ship that has ever made the trip, even if all of the ships have arrived. A large JAB would mean that the system receiving the bits would be able to correct all but the most extreme instances of PDV, but APD is adversely affected because the APD for each of the packets is increased by the delay caused by the average depth of the JAB.
Some current methods for the correction of PDV use a fixed size JAB. Examples include: ASICs for ATM; CES and inverse multiplexers for ATM; and Frame Relay. While these devices sometimes allow for the user to configure the system to use one of several fixed values for the buffer, none of these devices dynamically adjust the buffer based on network conditions.
Other methods for the correction of PDV are adaptive, such as those used for VoIP and streaming video. These methods are designed for data streams such as voice or video that have the following characteristics: 1) Small imperfections are usually acceptable, so the effect of a discarded packet is small; 2) It is possible to construct a good approximation of missing data; and 3) There may be xe2x80x9cquietxe2x80x9d periods that allow for simple re-sizing of the buffer.
These assumptions do not hold for arbitrary data streams such as those created during circuit emulation. Since these assumptions do not hold, these approaches are of limited use for arbitrary data streams. There is an unmet need for a system that can adjust to changes in network conditions to dynamically resize the JAB buffer and do so hitlessly under most circumstances that without introducing bit errors into the output.
Notes on Time Versus Packets Versus Bytes
In different situations, it is convenient to discuss the size of the JAB in terms of time, packets or bytes.
Timexe2x80x94Because APD and PDV are normally measured in units of microseconds (xcexcs) or milliseconds (ms); it may useful to discuss the size of the JAB in terms of time.
Packetsxe2x80x94It is more convenient to talk about the JAB in terms of packets when considering the current depth or fullness of the JAB.
Bytesxe2x80x94The JAB feeds a circuit interface, so it is drained byte-by-byte. Also a discussion of a physical implementation is also more convenient in terms of bytes.
Here are some useful conversion formulas:
JAB Depth (time)=8 bits/byte*JAB Depth (bytes)/Circuit Bit Rate R (bps)
Packet Period (time)=1/Packet Rate P (pps)
Packet Payload (bytes)=Circuit Bit Rate R (bps)*Packet Period (time)/8 bits/byte
JAB Physical Memory (bytes)=JAB Depth (time)*Circuit Bit Rate R (bps)/8 bits/byte
Examples for common circuit types and rates are shown in Table 1 below.
The packet periods shown are typical, but they could be higher or lower for a given implementation.
Thus, a review of prior art solutions reveals a gap in solutions that work well for arbitrary data streams that do not lend themselves to the assumptions necessary for some prior art solutions.
It is therefore an object of this invention to provide robust correction of PDV in the presence of a network that is changing its PDV due to loading, congestion or other impairments.
It is a further object of this invention to provide robust correction of PDV without unduly increasing APD.
These and other advantages of the present invention are apparent from the drawings and the detailed description that follows.
This disclosure reveals a method of PDV correction that is achieved through the dynamic control of the size of a JAB. Dynamic control allows for the minimum incremental APD that is sufficient for the correction of the PDV existing in the network.